package com.bigdata;

import com.google.common.base.Charsets;
import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;

public class BloomFilterDemo {
    public static void main(String[] args) {
        int total = 1000000; // 总数量 100w
        // 布隆过滤器的长度是100w
        BloomFilter<CharSequence> bf =
                BloomFilter.create(Funnels.stringFunnel(Charsets.UTF_8), total, 0.01);
        // 初始化 1000000 条数据到过滤器中
        for (int i = 0; i < total; i++) {
            bf.put("" + i);
        }
        // 判断值是否存在过滤器中
        int count = 0;
        for (int i = 0; i < total + 10000; i++) {
            // 判断布隆过滤器是否存在值
            if (bf.mightContain("" + i)) {
                // 统计 101w次的循环，有多少次通过了过滤
                count++;
            }
        }
        System.out.println("通过过滤的次数 " + count);
    }
}